The increased demand in internet services has necessitated the need for replicated database servers, which help distribute database transactions across multiple database servers. The replicated database servers offload database transactions from master database servers. However, when the number of the replicated database servers increases, keeping them up to date becomes an issue.
Traditionally, database hierarchies are built using a flat replication tree, where all the replicated slave database servers connect directly to a master database server. The master database server sends database updates to each of the connected redundant slave database servers, to keep the redundant slave databases consistent with the master database. However, this puts extra load on the master database server and can saturate the master database's total network bandwidth, causing long delays in receiving database updates from the master database server at the replicated slave database servers.
Alternatively, database servers can be arranged such that replicated slave database servers receive updates from other replicated slave database servers which have received updates from the master database server. This can help reduce the load on the master database server. However, this is currently done through a manual and static configuration process, which can fail during network failures, machine failures, and unexpected network changes.
Therefore, systems and methods for organizing hierarchical database replication, which can solve these problems, are needed.